In radiology the need often exists to reconstruct a three-dimensional (3D) image from two-dimensional (2D) images for diagnosis, therapy planning and during interventional procedures. The problem arises with so-called C-arm x-ray systems, for example, in which the x-ray tube and detector are mounted on a C-arm which is freely maneuverable around the patient. It is often desirable to reconstruct a three-dimensional image volume from two-dimensional x-ray images or projection images thus obtained. However, in this case the projection geometry is more complex than with a computer tomograph, as the latter x-rays the subject under examination section by section with a fan beam, whereas the beam is cone-shaped in the case of a c-arm machine. This statement is not true of multislice CT. For example, for 64-row scanners an algorithm for cone-beam projection geometry is also required. Moreover, C-arm systems are often mechanically unstable and do not move exactly on a circular orbit around the subject, but produce e.g. slight vibrations.
For reconstructing structures with low x-ray contrast (e.g. soft parts in medical data) a large number of projection images are required, which greatly increases the computational cost/complexity and may therefore negatively impact the usability of the system. For example, during an interventional catheter treatment, the reconstruction must if possible be complete within a few seconds or a few minutes at the most.
A method for such a reconstruction is disclosed in the article “Practical cone-beam algorithm” by L. A. Feldkamp, L. C. Davis and J. W. Kress, Journal of the Optical Society of America 1, 612-619 (1984). An implementation and adaptation of this system for use in C-arm systems is described in “Enhanced 3-D-reconstruction algorithm for C-arm systems suitable for interventional procedures” by K. Wiesent, K. Barth, M. Navab, P. Durlak, T. Brunner, O. Schütz and W. Seissl, IEEE Transactions on Medical Imaging, Vol. 19, No. 5 (2000). This method is based on back projection, i.e. the grayscale values of the projection images are summed for each voxel in the image volume at the corresponding image points. For each projection image, the image volume to be reconstructed is run through voxel by voxel, the projection of the voxel is computed and the grayscale value of the corresponding pixel of the projection image is added to the voxel value.
This method requires that the projection geometry of the recording system has been separately determined in advance for each recording position by means of a calibrating method, allowing for any deformations and dynamic movements of the recording system, which means that in general the main axes of the volume to be reconstructed do not have a uniform orientation in the projection images. In general it must therefore be assumed for each projection that the spacings of adjacent voxels in the projection are not uniform in any direction.
For the general projection geometry occurring in C-arm systems, at least three additions and two divisions must be carried out for each voxel, see e.g. page 395 of the abovementioned article by K. Wiesent et al. in IEEE Transactions on Medical Imaging. In the algorithm specified there, the voxels of the image volume are sampled in three nested loops in the x-, y-and z-direction. In the innermost loop, the relevant z-coordinate is then multiplied by the projection matrix and the homogeneous pixel coordinates (r, s, t) thereby obtained are normalized so that the position of the corresponding pixel in the image coordinates is finally yielded as u=r/t and v=s/t. Finally the pixel closest to the position (u, v) must be determined and accumulated to the grayscale value of the voxel at the position (x, y, z). As these operations must be performed in the innermost loop, this results in considerable computational cost/complexity. In addition, random memory access to the projection data is required which negatively impacts the necessary memory transfer between main memory and cache.
Pared down to its essential algorithmic processing steps, the known back-projection algorithm can be described as follows:
For each slice of the 3D volume (with uniform z-value)  Determine the projection of the vertex of the slice  For each row of the slice (with uniform y-value)   Determine the projection of the row start point as a function   of the slice vertex   For each voxel of the row (x-direction)    Determine the projection of the voxel as function of the start    point of the row (3 additions and 2 divisions)    Accumulate the grayscale value of the image point to the    voxel value (1 addition)   End  EndEnd.